/**
 * 系统管理--用户管理的单例对象
 */
var IMap={};
var MgrUser = {
    id: "managerTable",//表格id
    seItem: null,		//选中的条目
    table: null,
    layerIndex: -1,
    userId:null,
    elem:null,
    elem2:null,
    deptId:0
};

/*
 * 切换Switchery开关函数
 * * switchElement Switchery对象
 * * checkedBool 选中的状态
 */
function setSwitchery(switchElement, checkedBool) {
    if ((checkedBool && !switchElement.isChecked()) || (!checkedBool && switchElement.isChecked())) {
        switchElement.setPosition(true);
        //switchElement.handleOnchange(true);
    }
}

MgrUser.callSetSwitchery = function(){
    setSwitchery(IMap[MgrUser.elem.id],!MgrUser.elem.checked);
}
/**
 * ios7 切换事件
 */
MgrUser.switchChange=function(elem,userId,account,name){
    MgrUser.elem = elem;
    MgrUser.userId = userId;
    if(elem.checked){
        Feng.confirm('确认解除冻结&nbsp;<span style="color:#FF0000">'+account+'('+name+')</span>?',MgrUser.unfreeze,MgrUser.callSetSwitchery);
    }else{
        Feng.confirm('确认冻结&nbsp;<span style="color:#FF0000">'+account+'('+name+')</span>?',MgrUser.freezeAccount,MgrUser.callSetSwitchery);
    }
}
/**
 * 初始化 切换按钮
 */
MgrUser.initCheckboxSwitch=function(value,index,row){
    if(value==1){
        return '<input onchange="MgrUser.switchChange(this,'+row.id+',\''+row.account+'\',\''+row.name+'\');" type="checkbox" class="js-switch" id="switch'+index+'" checked />';
    }else{
        return '<input onchange="MgrUser.switchChange(this,'+row.id+',\''+row.account+'\',\''+row.name+'\');" type="checkbox" class="js-switch" id="switch'+index+'"  />';
    }
}



/**
 * 编辑列 自定义
 */
MgrUser.editFormatter=function (value, row, index){
    var btnArr =[];
    var btnDetail =  {clickEvent:'MgrUser.openDetail('+row.id+');',title:'详情',icon:HsetIcon['detail'],active:true};
    var btnUpdate =  {clickEvent:'MgrUser.openChangeUser('+row.id+');',title:'修改',icon:HsetIcon['update'],active:false};
    var btnDelete =  {clickEvent:'MgrUser.deleteUser('+row.id+',\''+row.account+'\',\''+row.name+'\');',title:'删除',icon:HsetIcon['delete'],active:false};

    var btnResetPwd =  {clickEvent:'MgrUser.resetPwd('+row.id+');',title:'重置密码',icon:HsetIcon['reset'],active:false};
    if(Authority.update==true){
        btnUpdate.active=true;
    }
    if(Authority.delete==true){
        btnDelete.active=true;
    }
    if(Authority.dept_assign==true){
        btnDeptAssign.active=true;
    }
    if(Authority.reset==true){//重置密码.
        btnResetPwd.active = true;
    }

    btnArr.push(btnDetail);
    btnArr.push(btnUpdate);
    btnArr.push(btnDelete);
   
    btnArr.push(btnResetPwd);
    return HsetIcon.createGroup(btnArr);
};
//头像列 自定义
MgrUser.avatarFMT=function (value, row, index) {
    var node=[];
    node.push('<div  style="border-radius: 50px;overflow: hidden;width:100px;height:100px;">');
    node.push(' <img  style="width:100%;height:100%;overflow: hidden;" src="'+Feng.ctxPath+value+'">');
    node.push('</div>');
    return node.join('');
}
/**
 * 初始化表格的列
 */
MgrUser.initColumn = function () {
    return [
        {field: 'selectItem',visible: false, checkbox: true},
       // {title: 'id', field: 'id', visible: false,width:20, align: 'center', valign: 'middle'},
        {title: '序号',align : 'center',valign : 'middle',width:20,radio: false,checkbox:false,formatter:function (value, row, index) {  return index+1; } },
        {title: '头像', field: 'avatar_url', align: 'center', valign: 'middle',width:100, sortable: true,formatter:MgrUser.avatarFMT},
        {title: '姓名', field: 'name', align: 'center', valign: 'middle',width:180, sortable: true},
        {title: '角色', field: 'roleName', align: 'center', valign: 'middle',width:150, sortable: true},
        {title: '账号', field: 'account', align: 'center', valign: 'middle',width:180, sortable: true},

        {title: '性别', field: 'sex', align: 'center', visible: false,valign: 'middle', sortable: true},
        {title: '邮箱', field: 'email', align: 'center', visible: false, valign: 'middle', sortable: true},
        {title: '电话', field: 'phone', align: 'center', visible: false, valign: 'middle', sortable: true},
        {title: '传真', field: 'fax', align: 'center', visible: false, valign: 'middle', sortable: true},
        {title: '最后登入时间', field: 'lastLoginTime', align: 'center',visible: false,  valign: 'middle', sortable: true},
        {title: '创建时间', field: 'createtime', align: 'center', visible: false, valign: 'middle', sortable: true},
        {title: '状态', field: 'status', align: 'center', valign: 'middle', width:30,sortable: true,formatter:function(value,row,index){return MgrUser.initCheckboxSwitch(value,index,row);}},
        {title: '操作', align: 'center', valign: 'middle',width:140, formatter:MgrUser.editFormatter}];
};


/**
 * 打开查看展会管理详情
 */
MgrUser.openDetail = function (id) {
    Container.showRight();
    Container.setIframeSrc(Feng.ctxPath + '/mgr/detail/'+id);
};
/**
 * 点击添加
 */
MgrUser.openAddMgr = function () {
    var index = layer.open({
        type: 2,
        shade: [0.5,'FFFFFF'],
        title: '添加用户',
        offset: '10px',
        area: ['950px', '560px'], //宽高
        fix: false, //不固定
        maxmin: true,
        content: Feng.ctxPath + '/mgr/user_add'
    });
    this.layerIndex = index;
};

/**
 * 点击修改按钮时
 * @param userId 管理员id
 */
MgrUser.openChangeUser = function (userId) {
    var index = layer.open({
        type: 2,
        shade: [0.5,'FFFFFF'],
        title: '编辑用户',
        offset: '10px',
        area: ['800px', '450px'], //宽高
        fix: false, //不固定
        maxmin: true,
        content: Feng.ctxPath + '/mgr/user_edit/' +userId
    });
this.layerIndex = index;

};

/**
 * 删除用户
 * @param userId id
 */
MgrUser.deleteUser = function (userId,account,name) {
    Feng.confirm('确定删除&nbsp;<span style="color:#FF0000">'+account+'('+name+')</span>？',mysure);
    function mysure(){
        var ajax = new $ax(Feng.ctxPath + "/mgr/delete/"+userId, function (data) {
            Feng.success("删除用户成功!");
            MgrUser.table.refresh();
        }, function (data) {
            Feng.error("删除用户失败!");
        });
        ajax.setZLoadingIn(true);
        ajax.setZLoadingOut(true);
        ajax.start();
    }
};


/**
 * 冻结用户账户
 * @param userId
 */
MgrUser.freezeAccount = function () {
    var ajax = new $ax(Feng.ctxPath + "/mgr/freeze", function (data) {
        Feng.success("冻结成功!");
        MgrUser.table.refresh();
    }, function (data) {
        MgrUser.callSetSwitchery();
        Feng.error("冻结失败!" + data.responseJSON.message + "!");
    });
    ajax.set("userId", MgrUser.userId);
    ajax.setZLoadingIn(true);
    ajax.setZLoadingOut(true);
    ajax.start();

};

/**
 * 解除冻结用户账户
 * @param userId
 */
MgrUser.unfreeze = function () {
    var ajax = new $ax(Feng.ctxPath + "/mgr/unfreeze", function (data) {
        Feng.success("解除冻结成功!");
        MgrUser.table.refresh();
    }, function (data) {
        MgrUser.callSetSwitchery();
        Feng.error("解除冻结失败!");
    });
    ajax.set("userId", MgrUser.userId);
    ajax.setZLoadingIn(true);
    ajax.setZLoadingOut(true);
    ajax.start();
}



/**
 * 重置密码
 */
MgrUser.resetPwd = function (id) {
   var userId = id;
   parent.layer.confirm('是否重置密码？', {
       btn: ['确定', '取消'],
       shade: false //不显示遮罩
   }, function () {
       var ajax = new $ax(Feng.ctxPath + "/mgr/reset", function (data) {
           Feng.success("重置密码成功!");
       }, function (data) {
           Feng.error("重置密码失败!");
       });
       ajax.set("userId", userId);
       ajax.setZLoadingIn(true);
       ajax.setZLoadingOut(true);
       ajax.start();
   });
};




/**
 * 自定义按钮组
 */
MgrUser.btnGroup=function(){
    var arr=[];
    if(Authority['add']==true){//添加
        arr.push({clickEvent:'MgrUser.openAddMgr();',title:'添加用户',icon:HsetIcon['add']});
    }

    return arr;
};

$(function () {
    var defaultColunms = MgrUser.initColumn();
    var table = new BSTable("managerTable", "/mgr/list", defaultColunms);
    table.setPaginationType("client");
    table.setIsInitSwitchery(true);
    table.setBtnGroup(MgrUser.btnGroup());
    MgrUser.table = table.init();
    MgrUser.vs= new $vs(MgrUser.table).init();
    MgrUser.vs.setNormalSpecialDataFun(function () {
       return {normal:'normal'}
    }).setSpecialDataFun(function () {
        return {special:'special'}
    }).setHighSpecialDataFun(function () {
        return {high:'high'}
    });
    //同时绑定多个 laydate实例
    $('.layer-date').each(function(){
        laydate.render({
            elem: this
            ,trigger: 'click'
        });
    });
});